<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

</head>
<body>
    <div id="app">
        <input type="text" v-model="name" placeholder="你的名字">
        <h1>hello,{{name}}</h1>
        <h1>现在时间: {{ nowdate | formatDate }}</h1> 
        <h1>多参数过滤的实例:{{color|select('red','green')}}</h1>
        <h1>参数串联的用法{{cl | selectA | selectB }}</h1>
        <br>
        <span v-html="link"></span>
        <br>
        <span v-pre>这里的内容不被编译<br>这里的内容不被编译<br>这里的内容不被编译<br>这里的内容不被编译<br>这里的内容不被编译<br></span>
        <br>
        <P>{{number/2}}</P>
        <p>{{isok?'确定':'取消'}}</p>
        <p>{{text.split(',').reverse().join(',')}}</p>
        <p v-if="show">显示这个文本，这个时候show的值为：{{ show }}</p>

        <a v-bind:href="url">百度</a>
        <a :href="url">百度</a>
        <!-- 语法糖 -->
        <br>
        <img v-bind:src="imgurl1">
        <img :src="imgurl1">

        <p v-if="show">this is a text</p>
        <button v-on:click="handleclick">click</button>
        <button @click="handleclick">click</button>


    </div>
    <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
    <script>
        //公共函数
        function padate(val){
            return val<10?'0'+val:val;
        }
        var app = new Vue({
            el:'#app', //el:document.getElementById('app')
            data:{
                name:'222',
                nowdate:new Date(),
                link:'<a href="#">this is a link</a>',
                number:14,
                isok:false,
                text:'123,456',
                color:['red','green','black'],
                cl:[1,2,3,4,5,30,40,-200],
                show:true,
                url:'http://www.baidu.com',
                imgurl1:'./images/a.jpg'
            },
            //实例创建完成后调用，完成了数据的观测，但还未挂载，$el还不能用，需要初始化处理一些数据时会比较有用。
            created:function(){  
                
                console.log(this.name);
            },
            //过滤器的使用。主要有串联和多参数的使用
            filters:{
                formatDate:function(value){
                    var date = new Date(value);
                    var year = date.getFullYear();
                    var month = padate(date.getMonth()+1);
                    var day = padate(date.getDate());
                    var hours=padate(date.getHours());
                    var minutes=padate(date.getMinutes());
                    var seconds=padate(date.getSeconds());
                    return year+'-'+month+'-'+day+' '+hours+':'+minutes+':'+seconds;
                },
                select:function(value,red,green){
                    var newarr=''
                    for (var i =0;i<value.length;i++){
                        if (value[i]===red||value[i]===green){
                             newarr+=','+value[i]
                        }
                    }
                    return newarr;
                },
                selectA:function(value){
                    var newstr = [];
                    for (var i=0;i<value.length;i++){
                        if (value[i]>3){
                            newstr.push(value[i]);
                        }
                    }
                    return newstr;
                },
                selectB:function(value){
                    var newstr = [];
                    for (var i=0;i<value.length;i++){
                        if (value[i]>20){
                            newstr.push(value[i]);
                        }
                    }
                    return newstr;
                },
            },
            methods:{
                handleclick:function(){
                    this.close(); //在methods中调用里面的方法close!
                },
                close:function(){
                    this.show =false;
                }
            },

            //el挂载到实例上后调用，一般业务逻辑在这里
            mounted:function(){
                console.log(this.$el);
                var _this = this; //声明一个变量指向vue实例，保证作用域一致。
                this.timer = setInterval(function(){
                    _this.nowdate= new Date();
                },1000
                );

            },
            //实例销毁之前调用，主要解绑一些使用addEventListener监听的事件。
            beforeDestroy:function(){
                if(this.timer){
                    clearInterval(this.timer); //在vue实例销毁前，清除我们的定时器。
                }
            }
        })
    </script>


    
</body>
</html>